Use of computer systems is pervasive throughout much of modern society. While use of, and access to, computer systems in prior years was limited, technological advancements have permitted computer devices to be of increasingly-large processing and storage capabilities while, at the same time, of significantly decreased costs. Their use is now not only pervasive but likely to be more so in the future.
A computer system is typically formed of one or more computer devices whose operation involves the execution of computer software, i.e. algorithms. The computer software manipulates data during its execution, and processed data is formed. Outputs are generated in response to, or formed of, the processed data. Computer system operation can become quite complex particularly when multiple computer devices separately operate and interact. Even relatively simple software generally requires thousands of lines of source code and operates to perform many different tasks and many different possible outcomes and outputs.
Development of a computer system, or software to be run on a computer system, requires significant amount of planning, not only best to ensure successful development but, also, development within estimated budget. Computer system and software development planning sometimes makes use of use cases in the planning of a computer system or software project. Most simply, a use case comprises a specification that provides a description of sequences of events that, taken together, lead to an action taken by a computer system. A use case typically describes the interaction between an initiator of an interaction and the system to achieve a system goal. And, typically, a use case comprises a complete series of events, described from the perspective of the primary actor. And, a use case includes, e.g., a use case name, a version, a statement of a goal, a summary, a list of actors, a list of preconditions, a list of triggers, a description of a basic course of events, a list of alternative paths, past conditions, business rules, and any other desired information. A separate use case is typically created for each separate goal that is to be provided by the resultant software or system. A large system or complex software development might have dozens, hundreds, or more goals, each described by a different use case. Time management and cost budgeting utilizes the use case information, and the resultant estimations are dependent upon the information provided in the use cases.
If a use case is incomplete or does not include the appropriate information or structure, the estimation is likely to be less accurate. If many use cases are incomplete, then the estimation is likely substantially to be inaccurate and unreliable. And, if the use-case inadequacies are not detected and corrected, the requirements identified in the use cases are inadequate to properly identify requirements of the intended computer-system or application.
When the estimate is relied upon, but is inaccurate, cost overruns and low productivity, missed deadlines, loss of business opportunities, loss of customers, loss of referrals, etc are of increased possibilities.
Many times, the author of a use case provides inadequate, or erroneous, information as a result of lack of knowledge of the information required to be included in the use case. As, presently, there generally is no quantitative manner by which quickly to assess the quality of a use case, the author is sometimes unaware of the inadequacy of the use case. And, feedback is not provided to the author to inform the author of the inadequacy of the use case. If the inadequacy of the use case is not corrected before being, it might be too late to take corrective action with respect to the use case or the resulting system. And, even if best use is made of the use case, the resultant estimations are likely to be less accurate, resulting in the aforementioned problems.
If a manner could be provided by which quantitatively to analyze the adequacy of a use case, the use case could be amended to be placed in better form prior to its use for estimation, or other purposes.
It is light of this background information related to use cases that the significant improvements of the present invention have evolved.